<script setup lang="ts">
import BasicLayout from '@/layouts/BasicLayout.vue'
</script>

<template>
  <BasicLayout />
</template>

<style>
/* 全局样式优化 */
* {
  box-sizing: border-box;
}

body {
  margin: 0;
  padding: 0;
  font-family:
    -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell',
    'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
  background: 
    linear-gradient(180deg, #0a0e27 0%, #1a1f3a 8%, #1e2338 20%, #0f1419 100%);
  min-height: 100vh;
  /* Firefox 全局滚动条（深色） */
  scrollbar-width: thin;
  scrollbar-color: rgba(100, 116, 139, 0.7) rgba(15, 23, 42, 0.8);
}

html {
  overflow-x: hidden;
}

/* 全局文本颜色（深色主题下统一为白色系） */
body, p, span, .ant-typography {
  color: rgba(255, 255, 255, 0.9);
}
h1, h2, h3, h4 {
  color: #ffffff;
  font-weight: 700;
}

/* Message 全局深色主题（创建应用等顶部提示） */
.ant-message {
  z-index: 2000; /* 保证在画布之上 */
}
.ant-message-notice-content {
  background: rgba(15, 20, 35, 0.95) !important;
  backdrop-filter: blur(16px) !important;
  border: 1px solid rgba(59, 130, 246, 0.35) !important;
  color: #ffffff !important;
  box-shadow:
    0 10px 40px rgba(0, 0, 0, 0.45),
    0 0 20px rgba(59, 130, 246, 0.2) !important;
  border-radius: 10px !important;
}
.ant-message-custom-content {
  color: #ffffff !important;
}
.ant-message .anticon {
  color: #22c55e !important; /* 成功图标保持绿色，高对比 */
}

/* 全局下拉条深色主题 */
.ant-dropdown {
  background: rgba(15, 20, 35, 0.95) !important;
  backdrop-filter: blur(20px) !important;
  border: 1px solid rgba(59, 130, 246, 0.3) !important;
  border-radius: 8px !important;
  box-shadow: 
    0 10px 40px rgba(0, 0, 0, 0.4),
    0 0 20px rgba(59, 130, 246, 0.2) !important;
}

.ant-dropdown .ant-menu {
  background: transparent !important;
  border: none !important;
}

.ant-dropdown .ant-menu-item {
  color: rgba(255, 255, 255, 0.9) !important;
  background: transparent !important;
}

.ant-dropdown .ant-menu-item:hover {
  background: rgba(59, 130, 246, 0.25) !important;
  color: #ffffff !important;
}

.ant-dropdown .ant-menu-item-selected {
  background: rgba(59, 130, 246, 0.2) !important;
  color: #ffffff !important;
}

/* 确保下拉菜单中的图标可见 */
.ant-dropdown .ant-menu-item .anticon {
  color: rgba(255, 255, 255, 0.95) !important;
  margin-right: 10px !important;
  font-size: 16px !important;
  display: inline-flex !important;
  align-items: center !important;
  vertical-align: middle !important;
}

.ant-dropdown .ant-menu-item:hover .anticon {
  color: #ffffff !important;
}

.ant-dropdown .ant-menu-item-selected .anticon {
  color: #ffffff !important;
}

/* 确保下拉菜单项的文字可见 */
.ant-dropdown .ant-menu-item {
  color: rgba(255, 255, 255, 0.95) !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  padding: 10px 16px !important;
  min-height: 40px !important;
  display: flex !important;
  align-items: center !important;
}

.ant-dropdown .ant-menu-item span {
  color: rgba(255, 255, 255, 0.95) !important;
  font-size: 14px !important;
  font-weight: 500 !important;
}

.ant-dropdown .ant-menu-item:hover span {
  color: #ffffff !important;
}

.ant-dropdown .ant-menu-item-selected span {
  color: #ffffff !important;
}

/* Select 下拉框深色主题 */
.ant-select-dropdown {
  background: rgba(15, 20, 35, 0.95) !important;
  backdrop-filter: blur(20px) !important;
  border: 1px solid rgba(59, 130, 246, 0.3) !important;
  border-radius: 8px !important;
  box-shadow: 
    0 10px 40px rgba(0, 0, 0, 0.4),
    0 0 20px rgba(59, 130, 246, 0.2) !important;
}

.ant-select-dropdown .ant-select-item {
  color: rgba(255, 255, 255, 0.9) !important;
  background: transparent !important;
}

.ant-select-dropdown .ant-select-item:hover {
  background: rgba(59, 130, 246, 0.2) !important;
  color: #60a5fa !important;
}

.ant-select-dropdown .ant-select-item-option-selected {
  background: rgba(59, 130, 246, 0.15) !important;
  color: #60a5fa !important;
}

.ant-select-dropdown .ant-select-item-option-active {
  background: rgba(59, 130, 246, 0.1) !important;
}

/* Select 输入框深色主题 */
.ant-select-selector {
  background: rgba(20, 25, 40, 0.6) !important;
  border: 1px solid rgba(59, 130, 246, 0.3) !important;
  color: rgba(255, 255, 255, 0.9) !important;
}

.ant-select-focused .ant-select-selector {
  border-color: rgba(59, 130, 246, 0.6) !important;
  box-shadow: 0 0 15px rgba(59, 130, 246, 0.3) !important;
}

.ant-select-selection-item {
  color: rgba(255, 255, 255, 0.9) !important;
}

.ant-select-arrow {
  color: rgba(255, 255, 255, 0.6) !important;
}

/* DatePicker 下拉框深色主题 */
.ant-picker-dropdown {
  background: rgba(15, 20, 35, 0.95) !important;
  backdrop-filter: blur(20px) !important;
  border: 1px solid rgba(59, 130, 246, 0.3) !important;
  border-radius: 8px !important;
  box-shadow: 
    0 10px 40px rgba(0, 0, 0, 0.4),
    0 0 20px rgba(59, 130, 246, 0.2) !important;
}

.ant-picker-panel {
  background: transparent !important;
  border: none !important;
}

.ant-picker-header {
  border-bottom: 1px solid rgba(59, 130, 246, 0.2) !important;
}

.ant-picker-header button {
  color: rgba(255, 255, 255, 0.9) !important;
}

.ant-picker-header button:hover {
  color: #60a5fa !important;
}

.ant-picker-cell {
  color: rgba(255, 255, 255, 0.7) !important;
}

.ant-picker-cell:hover .ant-picker-cell-inner {
  background: rgba(59, 130, 246, 0.2) !important;
}

.ant-picker-cell-selected .ant-picker-cell-inner {
  background: rgba(59, 130, 246, 0.3) !important;
  color: #60a5fa !important;
}

.ant-picker-today .ant-picker-cell-inner {
  border-color: rgba(59, 130, 246, 0.5) !important;
}

/* Tooltip 深色主题 */
.ant-tooltip-inner {
  background: rgba(15, 20, 35, 0.95) !important;
  backdrop-filter: blur(20px) !important;
  border: 1px solid rgba(59, 130, 246, 0.3) !important;
  color: rgba(255, 255, 255, 0.9) !important;
}

.ant-tooltip-arrow::before {
  background: rgba(15, 20, 35, 0.95) !important;
  border: 1px solid rgba(59, 130, 246, 0.3) !important;
}

/* Popover 深色主题 */
.ant-popover-inner {
  background: rgba(15, 20, 35, 0.95) !important;
  backdrop-filter: blur(20px) !important;
  border: 1px solid rgba(59, 130, 246, 0.3) !important;
}

.ant-popover-inner-content {
  color: rgba(255, 255, 255, 0.9) !important;
}

/* Popconfirm 深色主题 */
.ant-popconfirm .ant-popover-inner {
  background: rgba(15, 20, 35, 0.95) !important;
  border: 1px solid rgba(59, 130, 246, 0.35) !important;
  box-shadow:
    0 12px 32px rgba(2, 6, 23, 0.45),
    0 0 18px rgba(59, 130, 246, 0.25) !important;
}

.ant-popconfirm-message {
  color: rgba(255, 255, 255, 0.92) !important;
}

.ant-popconfirm-icon {
  color: #facc15 !important;
}

.ant-popconfirm .ant-btn {
  background: rgba(30, 41, 59, 0.85);
  border: 1px solid rgba(59, 130, 246, 0.35);
  color: rgba(226, 232, 240, 0.92);
  border-radius: 10px;
  transition: all 0.2s ease-in-out;
}

.ant-popconfirm .ant-btn:hover {
  border-color: rgba(96, 165, 250, 0.65);
  color: rgba(190, 227, 248, 0.95);
  background: rgba(30, 64, 175, 0.35);
}

.ant-popconfirm .ant-btn:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.25);
}

.ant-popconfirm .ant-btn-primary {
  background: linear-gradient(135deg, #38bdf8 0%, #60a5fa 52%, #8b5cf6 100%) !important;
  border: none !important;
  color: #0f172a !important;
  box-shadow:
    0 10px 24px rgba(59, 130, 246, 0.35),
    0 0 18px rgba(59, 130, 246, 0.3);
}

.ant-popconfirm .ant-btn-primary:hover {
  filter: brightness(1.07);
  transform: translateY(-1px);
}

/* Modal 深色主题 */
.ant-modal-content {
  background: rgba(15, 20, 35, 0.95) !important;
  backdrop-filter: blur(20px) !important;
  border: 1px solid rgba(59, 130, 246, 0.3) !important;
  box-shadow: 
    0 10px 40px rgba(0, 0, 0, 0.4),
    0 0 20px rgba(59, 130, 246, 0.2) !important;
}

.ant-modal-header {
  background: transparent !important;
  border-bottom: 1px solid rgba(59, 130, 246, 0.2) !important;
}

.ant-modal-title {
  color: rgba(255, 255, 255, 0.95) !important;
}

.ant-modal-close {
  color: rgba(255, 255, 255, 0.6) !important;
}

.ant-modal-close:hover {
  color: rgba(255, 255, 255, 0.9) !important;
}

.ant-modal-body {
  color: rgba(255, 255, 255, 0.9) !important;
}

/* Table 深色主题 */
.ant-table {
  background: transparent !important;
  color: rgba(255, 255, 255, 0.9) !important;
}

.ant-table-thead > tr > th {
  background: rgba(20, 25, 40, 0.6) !important;
  border-bottom: 1px solid rgba(59, 130, 246, 0.3) !important;
  color: rgba(255, 255, 255, 0.9) !important;
}

.ant-table-tbody > tr > td {
  border-bottom: 1px solid rgba(59, 130, 246, 0.2) !important;
  color: rgba(255, 255, 255, 0.8) !important;
}

.ant-table-tbody > tr:hover > td {
  background: rgba(59, 130, 246, 0.1) !important;
}

.ant-table-tbody > tr.ant-table-row-selected > td {
  background: rgba(59, 130, 246, 0.15) !important;
}

/* Pagination 深色主题 */
.ant-pagination-item {
  background: rgba(20, 25, 40, 0.6) !important;
  border: 1px solid rgba(59, 130, 246, 0.3) !important;
}

.ant-pagination-item a {
  color: rgba(255, 255, 255, 0.9) !important;
}

.ant-pagination-item:hover {
  border-color: rgba(59, 130, 246, 0.6) !important;
}

.ant-pagination-item:hover a {
  color: #60a5fa !important;
}

.ant-pagination-item-active {
  background: rgba(59, 130, 246, 0.3) !important;
  border-color: rgba(59, 130, 246, 0.6) !important;
}

.ant-pagination-item-active a {
  color: #60a5fa !important;
}

.ant-pagination-prev,
.ant-pagination-next {
  color: rgba(255, 255, 255, 0.9) !important;
}

.ant-pagination-prev:hover,
.ant-pagination-next:hover {
  color: #60a5fa !important;
}

/* Input 深色主题（全局） */
.ant-input {
  background: rgba(20, 25, 40, 0.6) !important;
  border: 1px solid rgba(59, 130, 246, 0.3) !important;
  color: rgba(255, 255, 255, 0.9) !important;
}

.ant-input::placeholder {
  color: rgba(255, 255, 255, 0.5) !important;
}

.ant-input:focus {
  background: rgba(20, 25, 40, 0.8) !important;
  border-color: rgba(59, 130, 246, 0.6) !important;
  box-shadow: 0 0 15px rgba(59, 130, 246, 0.3) !important;
}

/* Textarea 深色主题（全局） */
.ant-input-affix-wrapper {
  background: rgba(20, 25, 40, 0.6) !important;
  border: 1px solid rgba(59, 130, 246, 0.3) !important;
}

.ant-input-affix-wrapper .ant-input {
  background: transparent !important;
}

.ant-input-affix-wrapper:focus,
.ant-input-affix-wrapper-focused {
  border-color: rgba(59, 130, 246, 0.6) !important;
  box-shadow: 0 0 15px rgba(59, 130, 246, 0.3) !important;
}

/* 全局滚动条深色主题（WebKit） */
html::-webkit-scrollbar,
body::-webkit-scrollbar,
*::-webkit-scrollbar {
  width: 10px;
  height: 10px;
}

html::-webkit-scrollbar-track,
body::-webkit-scrollbar-track,
*::-webkit-scrollbar-track {
  background: rgba(15, 23, 42, 0.6);
  border-radius: 8px;
}

html::-webkit-scrollbar-thumb,
body::-webkit-scrollbar-thumb,
*::-webkit-scrollbar-thumb {
  background: linear-gradient(180deg, rgba(100, 116, 139, 0.8), rgba(59, 130, 246, 0.6));
  border-radius: 8px;
  border: 2px solid rgba(15, 23, 42, 0.6);
}

html::-webkit-scrollbar-thumb:hover,
body::-webkit-scrollbar-thumb:hover,
*::-webkit-scrollbar-thumb:hover {
  background: linear-gradient(180deg, rgba(148, 163, 184, 0.95), rgba(96, 165, 250, 0.9));
}

/* Form 深色主题 */
.ant-form-item-label > label {
  color: rgba(255, 255, 255, 0.9) !important;
}

.ant-form-item-explain-error {
  color: #f87171 !important;
}

/* Alert 深色主题 */
.ant-alert {
  background: rgba(20, 25, 40, 0.8) !important;
  border: 1px solid rgba(59, 130, 246, 0.3) !important;
  color: rgba(255, 255, 255, 0.9) !important;
}

.ant-alert-info {
  background: rgba(20, 25, 40, 0.8) !important;
  border-color: rgba(59, 130, 246, 0.4) !important;
}

.ant-alert-success {
  background: rgba(20, 40, 30, 0.8) !important;
  border-color: rgba(16, 185, 129, 0.4) !important;
}

.ant-alert-warning {
  background: rgba(40, 30, 20, 0.8) !important;
  border-color: rgba(251, 191, 36, 0.4) !important;
}

.ant-alert-error {
  background: rgba(40, 20, 20, 0.8) !important;
  border-color: rgba(239, 68, 68, 0.4) !important;
}
</style>
